﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Conexion;
using System.Data;

namespace AccesoDatos
{
    public class Manejador_Usuarios
    {
        public DataTable RegresaUsuarios(string strUsuario, string strPasswd)
        {
            try
            {
                List<clsParametros> lista = new List<clsParametros>();
                clsConexion objConn = new clsConexion();
                lista = new List<clsParametros>();
                lista.Add(new clsParametros("@Usuario", strUsuario));
                lista.Add(new clsParametros("@Password", strPasswd));
                DataTable Datos = objConn.Datatable_standart("sp_RMA_RegresaDatosUsuario1", lista);

                return Datos;
            }
            catch (Exception ex)
            {
                DataTable Datos = new DataTable();
                return Datos;
            }
        }

        public DataTable RegresaCatalogoUsuarios()
        {
            try
            {
                clsConexion objConn = new clsConexion();
                DataTable Datos = objConn.Datatable_standart("sp_RMA_CargaCatUsuarios");

                return Datos;
            }
            catch (Exception ex)
            {
                DataTable Datos = new DataTable();
                return Datos;
            }
        }
        public bool ModificaStatusUsuario(int intUsrId)
        {
            bool Modifica = false;
            List<clsParametros> lista = new List<clsParametros>();
            try
            {
                clsConexion objConn = new clsConexion();

                lista = new List<clsParametros>();
                lista.Add(new clsParametros("@UsrId", intUsrId.ToString()));
                Modifica = objConn.Procedure_standart("sp_RMA_EliminaUsuarios", lista);
                return Modifica;

            }
            catch
            {
                lista = null;
                return Modifica;
            }


        }
        public bool ModificarDatosUsuario(int intIdUsr, string strUsuario, string strNombre, string strContraseña, int intAutorizado, string strCorreo, string strPuesto)
        {
            bool ModificaDatos = false;
            List<clsParametros> ListaParametros = new List<clsParametros>();
            try
            {
                clsConexion objConn = new clsConexion();
                ListaParametros = new List<clsParametros>();
                ListaParametros.Add(new clsParametros("@UsrId", intIdUsr.ToString()));
                ListaParametros.Add(new clsParametros("@Usuario", strUsuario));
                ListaParametros.Add(new clsParametros("@Nombre", strNombre));
                ListaParametros.Add(new clsParametros("@Contraseña", strContraseña));
                ListaParametros.Add(new clsParametros("@Correo", strCorreo));
                ListaParametros.Add(new clsParametros("@Puesto", strPuesto));

                ModificaDatos = objConn.Procedure_standart("sp_RMA_ModificaDatosUsuarios", ListaParametros);

                if (ModificaDatos)
                {
                    return true;
                }
                else
                {
                    return false;
                }

            }
            catch
            {
                return false;
            }


            
        }
        public bool AgregarUsuario(string strUsuario, string strNombre, string strContraseña, int intSuc, int intAutorizado, string strCorreo, string strPuesto)
        {
            bool AgregaUsuario = false;
            List<clsParametros> ListaParametros = new List<clsParametros>();
            try
            {
                string strDia, strMes, strAnio, strFecha;
                strDia = DateTime.Now.Day.ToString();
                strMes = DateTime.Now.Month.ToString();
                strAnio = DateTime.Now.Year.ToString();

                if(strDia.Length == 1)
                {
                    strDia = "0" + strDia;
                }
                if(strMes.Length == 1)
                {
                    strMes = "0" + strMes;
                }
                strFecha = strAnio + strMes + strDia;
                clsConexion objConn = new clsConexion();
                ListaParametros = new List<clsParametros>();
                ListaParametros.Add(new clsParametros("@Usuario", strUsuario));
                ListaParametros.Add(new clsParametros("@Nombre", strNombre));
                ListaParametros.Add(new clsParametros("@Contraseña", strContraseña));
                ListaParametros.Add(new clsParametros("@Suc", intSuc.ToString()));
                ListaParametros.Add(new clsParametros("@Autorizado", intAutorizado.ToString()));
                ListaParametros.Add(new clsParametros("@Correo", strCorreo));
                ListaParametros.Add(new clsParametros("@Puesto", strPuesto));
                ListaParametros.Add(new clsParametros("@Alta", strFecha));


                AgregaUsuario = objConn.Procedure_standart("sp_RMA_AgregaUsuarios", ListaParametros);

                if (AgregaUsuario)
                {
                    return true;
                }
                else
                {
                    return false;
                }

            }
            catch(Exception ex)
            {
                return false;
            }
        }
        public DataTable ObtienePermisosUsuarios(string strUser, string strPasswd, int Aplicacion)
        { 
            try
            {
                List<clsParametros> lista = new List<clsParametros>();
                clsConexion objConn = new clsConexion();
                lista = new List<clsParametros>();
                lista.Add(new clsParametros("@Usuario", strUser));
                lista.Add(new clsParametros("@Passwd", strPasswd));
                lista.Add(new clsParametros("@Aplicacion", Aplicacion.ToString()));
                DataTable Datos = objConn.Datatable_standart("sp_RMA_ObtienePermisosUsuario", lista);

                return Datos;
            }
            catch (Exception ex)
            {
                DataTable Datos = new DataTable();
                return Datos;
            }
        
        }
        public DataTable ObtieneModulosAplicacion(int idApp, string strUsuario, string strPasswd)
        {
            try
            {
                List<clsParametros> lista = new List<clsParametros>();
                clsConexion objConn = new clsConexion();
                lista = new List<clsParametros>();
                lista.Add(new clsParametros("@AppId", idApp.ToString()));
                lista.Add(new clsParametros("@Usuario", strUsuario));
                lista.Add(new clsParametros("@Passwd", strPasswd));
                DataTable Datos = objConn.Datatable_standart("sp_RMA_ObtieneModulos", lista);

                return Datos;
            }
            catch (Exception ex)
            {
                DataTable Datos = new DataTable();
                return Datos;
            }
        }
        public bool GuardaPermisos(string strUsuario, int AppId, int ModId)
        {
            bool Modifica = false;
            List<clsParametros> lista = new List<clsParametros>();
            try
            {
                clsConexion objConn = new clsConexion();

                lista = new List<clsParametros>();
                lista.Add(new clsParametros("@Usuario", strUsuario));
                lista.Add(new clsParametros("@AppId", AppId.ToString()));
                lista.Add(new clsParametros("@ModId", ModId.ToString()));
                Modifica = objConn.Procedure_standart("sp_RMA_GuardaPermisos", lista);
                return Modifica;

            }
            catch(Exception ex)
            {
                lista = null;
                return Modifica;
            }
        }
        public bool RetiraPermisos(string strUsuario, int AppId, int ModId)
        {
            bool Modifica = false;
            List<clsParametros> lista = new List<clsParametros>();
            try
            {
                clsConexion objConn = new clsConexion();

                lista = new List<clsParametros>();
                lista.Add(new clsParametros("@Usr", strUsuario));
                lista.Add(new clsParametros("@AppId", AppId.ToString()));
                lista.Add(new clsParametros("@ModId", ModId.ToString()));
                Modifica = objConn.Procedure_standart("sp_RMA_DesasignarPermisos", lista);
                return Modifica;

            }
            catch (Exception ex)
            {
                lista = null;
                return Modifica;
            }
        }
        public bool GuardaModulos(string strApp, string strDescripcion, string strDireccion)
        {
            bool GuardaModulo = false;
            List<clsParametros> lista = new List<clsParametros>();

            try
            {
                clsConexion objConn = new clsConexion();
                lista = new List<clsParametros>();
                lista.Add(new clsParametros("@app_Id", strApp));
                lista.Add(new clsParametros("@Descripcion", strDescripcion));
                lista.Add(new clsParametros("@Direccion", strDireccion));
                GuardaModulo = objConn.Procedure_standart("sp_RMA_AgregaModulosTabla", lista);
                return GuardaModulo;
            }
            catch (Exception)
            {
                lista = null;
                return GuardaModulo;
            }
        }

    }
}
